package com.gopay.common.cps.dao.fund;

import com.gopay.common.base.dao.BaseDAO;
import com.gopay.common.domain.fund.FundGopayFileEntity;

import java.util.List;
import java.util.Map;

/**
 * @author baiyunpeng
 * @2016年7月14日 下午3:36:05  www.gopay.com.cn Inc.All rights reserved.
 */
public interface FundFileDao extends BaseDAO<FundGopayFileEntity, String> {
    FundGopayFileEntity saveFile(FundGopayFileEntity fileEntity);

   List<FundGopayFileEntity> getFileOntime(String start, String end, String[] type,String fileStatus);

    /**
     * 更新文件状态通用方法
     * @param map
     * @param key
     * @return
     */
    Integer updateStatusFile(Map<String,Object> map,String key );

    /**
     * 查询文件
     * @param isNotify
     * @return
     */
    List<FundGopayFileEntity> queryFiles(String isNotify);

    /**
     * 更新文件
     * @param map
     * @return
     */
    int updateIsNotify(Map<String,Object> map);

    /**
     * 差异文件处理
     * @param maps
     * @return
     */
    Integer updateFileCauseDiffer(Map<String,Object> maps);

    /**
     * 查询文件
     * @param paramMap
     * @return
     */
    List<FundGopayFileEntity> queryFileByParam(Map<String, Object> paramMap);

    /**
     * 获取赎回文件
     * @param start
     * @param end
     * @param type
     * @param fileStatus
     * @param fundNo
     * @return
     */
    List<FundGopayFileEntity> getFileOntime(String fileName, String[] type, String fileStatus, String fundNo);

    /**
     * 获取文件
     * @param isNotifys
     * @return
     */
    List<FundGopayFileEntity> queryFiles(String[] isNotifys);

    /**
     * 获取文件
     * @param fileName
     * @param type
     * @return
     */
    FundGopayFileEntity getRedeemFileByNameAndType(String fileName, String type);

    FundGopayFileEntity getEntityByKey(String keyId);
}
